package org.nmgyjt.springboot.entity.admin;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nmgyjt.springboot.beans.admin.CsSystemOrgPreSetBean;
import org.nmgyjt.springboot.beans.admin.CsSystemSourceLevelBean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2023-06-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CsSystemAdminAndOrgInfo implements Serializable {

    public static final LambdaQueryWrapper<CsSystemAdminAndOrgInfo> gw() {
        return new LambdaQueryWrapper<>();
    }

    private static final long serialVersionUID = 1L;

    /**
     * 主键 ID
     */
    private String id;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 姓名
     */
    private String name;

    /**
     * 部门 Id
     */
    private String orgId;

    /**
     * 部门名称
     */
    private String orgName;

    /**
     * 行政区划编码12位
     */
    private String areaCode;

    /**
     * 权限编码1,2,3:4,5,6:0
     */
    private String menuPermission;

    /**
     * 职务名称
     */
    private String job;

    /**
     * 主管单位名称
     */
    private String superiorOrg;

    /**
     * 指挥体系管理员的层级:PRO-省级;CITY-市区;COUNTRY-村镇;
     */
    private String csAdminLevel;

    /**
     * 状态值:1-启用,0-删除
     */
    private Integer status;

    /**
     * 管理员类型:1-超级管理员;2-指挥体系会管理员;3.....
     */
    private Integer adminType;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 更新时间
     */
    private Date updatedTime;

    /**
     * 行政区划名称
     */
    private String areaName;

    /**
     * 展示队列的排序
     */
    private Integer udOrder;

    /**
     * 内设机构/科室
     */
    private String office;

    /**
     * 所属标签名称
     */
    private String menuName;

    /**
     * 所属标签ID
     */
    private String menuId;

    /**
     * 所属资源类型
     */
    @TableField(exist = false)
    private List<String> sourceType;

    /**
     * 所属资源类型值
     */
    @TableField(exist = false)
    private String sourceTypeValue;

    /**
     * 是否详情管理员;默认为空:2:总管理;3-详情管理员
     */
    @TableField(exist = false)
    private String pageType = "";

    /**
     * 管理员所在单位:orgName 为管理员所挂节点
     */
    private String workUnit = "";

    /**
     * 资源的等级级对象
     */
    private CsSystemSourceLevelBean sourceLevel;

    /**
     * 机构新增的类型;默认为空:1:不可以删除;2-可以删除
     */
    @TableField(exist = false)
    private String createType = "2";

    /**
     * 主管职责(例如:救援队伍:主要救援类型)"
     */
    private List<String> majorDuties = new ArrayList<>();

    /**
     * 次要职责(例如:救援队伍:辅助救援类型)"
     */
    private List<String> secondaryDuties = new ArrayList<>();

    /**
     * 预设成员单位信息列表
     */
    private List<CsSystemOrgPreSetBean> preSetOrgInfos = new ArrayList<>();


    /**
     * 机构最大设置用户数
     */
    Integer maxUserNumber = -1;

    /**
     * 机构用户数
     */
    Integer userNumber = 0;

}